feat: validate changeset chains from live git - #41
Merged
Conversation
## Summary - Check predecessor ancestry and source-tree equivalence from rehydrated refs - Distinguish source advancement from a different stamped source history - Cover propagated, rewritten, and non-equivalent chain topologies ## Why - Make cached branch-head drift semantics unnecessary and unrepresentable - Keep validation clean after legitimate propagation while rejecting real drift
## Summary - Re-resolve changeset branch refs immediately before invariant checks - Reject branch movement and live chain-shape changes after rehydration - Keep Git ancestry failures distinct from proven source divergence ## Why - Prevent stale rehydration snapshots from passing after a branch rewrite - Preserve accurate fail-closed diagnostics when Git evidence is unavailable
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
TL;DR
Validates rehydrated changeset chains directly against current git refs, ancestry, stamped source identity, and tree equivalence without cached branch-head state.
Summary
Changeset-Sourcetrailer.Scope boundary
skills/prepare-changesets/remains frozen and untouched.Validation
just format— pass.just lint-py— pass.just lint-md— pass.just test-carve-changesets— pass (17 tests).just test— pass.git diff --check— pass.skills-ref validate— pass for every complete skill other thancarve-changesets.review-code-change— clean at721a1ea07c0e8d8af1265bbf70326afaf286aa4aversus9428d09942a32123839c47fea6cec1421c41ff44after one correctness fix/re-review cycle.The epic grants a pre-packaging exception for the exact repository-wide
just lintfailureskills/carve-changesets: Missing required file: SKILL.md. Issue #35 owns that future file. Python lint, Markdown lint, all complete-skill validations, focused tests, and the full repository suite pass; no other local or remote gate is waived.Tickets
Fixes #32